package entidade;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Turma {

	@Id
	@SequenceGenerator(sequenceName = "public.seq_turma", name = "seq_turma", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_turma")
	private Integer id;

	// um aluno pode fazer ter mais de uma turma - @ManyToMany
	// private Collection<Aluno> aluno;

	@ManyToOne
	@JoinColumn(name = "curso_id")
	private Curso curso;

	private String diaSemana;
	
	@Temporal(TemporalType.DATE)
	private Date dataInicio;
	
	@Temporal(TemporalType.DATE)
	private Date dataConclusao;
	
	private Integer numeroVagas;

	@Column(nullable = true)
	private String situacao;
	
	@Column(nullable = true)
	private Integer sala;
	
	private String horario;
	
	@ManyToOne
	private Professor professor;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Curso getCurso() {
		if (curso == null) {
			return new Curso();
		}
		return curso;
	}

	public void setCurso(Curso curso) {
		this.curso = curso;
	}

	public String getDiaSemana() {
		return diaSemana;
	}

	public void setDiaSemana(String diaSemana) {
		this.diaSemana = diaSemana;
	}

	public Date getDataInicio() {
		return dataInicio;
	}

	public void setDataInicio(Date dataIncio) {
		this.dataInicio = dataIncio;
	}

	public Date getDataConclusao() {
		return dataConclusao;
	}

	public void setDataConclusao(Date dataConclusao) {
		this.dataConclusao = dataConclusao;
	}

	public Integer getNumeroVagas() {
		return numeroVagas;
	}

	public void setNumeroVagas(Integer numeroVagas) {
		this.numeroVagas = numeroVagas;
	}
	
	public String getSituacao() {
		return situacao;
	}
	
	public Integer getSala() {
		return sala;
	}

	public void setSala(Integer sala) {
		this.sala = sala;
	}

	public String getHorario() {
		return horario;
	}

	public void setHorario(String horario) {
		this.horario = horario;
	}

	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}
	public Professor getProfessor() {
		if (professor == null) {
			return new Professor();
		}
		return professor;
	}

	public void setProfessor(Professor professor) {
		this.professor = professor;
	}
}